package CONTABILIDAD_MODELO;

import Conexion.Conexion;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import java.util.Date;

import java.util.List;

public class CON_CUENTA_COMPRA_VENTA {

    private Double ID;
    private String DESCRIPCION;
    private Double PORCENTAJE;
    private Double DEBE_HABER;
    private Double ID_CUENTA;
    private Double DEDUCIBLE_FISCAL;
    private Conexion con = null;

    public CON_CUENTA_COMPRA_VENTA() {
    }

    public CON_CUENTA_COMPRA_VENTA(Double ID, String DESCRIPCION, Double PORCENTAJE, Double DEBE_HABER, Double ID_CUENTA) {
        this.ID = ID;
        this.DESCRIPCION = DESCRIPCION;
        this.PORCENTAJE = PORCENTAJE;
        this.DEBE_HABER = DEBE_HABER;
        this.ID_CUENTA = ID_CUENTA;
    }

    public boolean Insertar() {
        try {
            String consulta = "insert into BROKER.CON_CUENTA_COMPRA_VENTA(ID, DESCRIPCION, PORCENTAJE, DEBE_HABER, ID_CUENTA, DEDUCIBLE_FISCAL) VALUES (" + ID + ",'" + DESCRIPCION + "'," + PORCENTAJE + "," + DEBE_HABER + "," + ID_CUENTA + ", "+DEDUCIBLE_FISCAL+")";
            con.EjecutarSentencia(consulta);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }
    

    public boolean EliminarXid() {
        try {
            String consulta = "delete from BROKER.CON_CUENTA_COMPRA_VENTA where ID= " + getID();
            con.EjecutarSentencia(consulta);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }
    
    public boolean ELIMINARTodos() throws SQLException {
        String consulta = "delete from BROKER.CON_CUENTA_COMPRA_VENTA";
        con.EjecutarSentencia(consulta);
        return true;
    }

    public List<CON_CUENTA_COMPRA_VENTA> Todos() {
        try {
            String consulta = "select * from BROKER.CON_CUENTA_COMPRA_VENTA ORDER BY (ID)";
            ResultSet rs = con.EjecutarConsulta(consulta);
            return Cargar(rs);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
    
    public CON_CUENTA_COMPRA_VENTA CreditoFiscal() {
        try {
            String consulta = "select * from BROKER.CON_CUENTA_COMPRA_VENTA where  DEDUCIBLE_FISCAL=0";
            ResultSet rs = con.EjecutarConsulta(consulta);
            return Cargar(rs).get(0);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
    public CON_CUENTA_COMPRA_VENTA BuscarXidCuenta(double id) throws SQLException {        
        String consulta = "select * from BROKER.CON_CUENTA_COMPRA_VENTA where ID_CUENTA="+id;
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<CON_CUENTA_COMPRA_VENTA> lista=Cargar(rs);        
        if(lista.size()>0)
            return lista.get(0);
        else
            return null;
    }

    public List<CON_CUENTA_COMPRA_VENTA> Cargar(ResultSet rs) {
        try {
            List<CON_CUENTA_COMPRA_VENTA> lista = new ArrayList<CON_CUENTA_COMPRA_VENTA>();
            while (rs.next()) {
                CON_CUENTA_COMPRA_VENTA objeto = new CON_CUENTA_COMPRA_VENTA();
                objeto.setID(rs.getDouble("ID"));
                objeto.setDESCRIPCION(rs.getString("DESCRIPCION"));
                objeto.setPORCENTAJE(rs.getDouble("PORCENTAJE"));
                objeto.setDEBE_HABER(rs.getDouble("DEBE_HABER"));
                objeto.setID_CUENTA(rs.getDouble("ID_CUENTA"));
                objeto.setDEDUCIBLE_FISCAL(rs.getDouble("DEDUCIBLE_FISCAL"));
                objeto.setCon(con);
                lista.add(objeto);
            }
            return lista;
        } catch (SQLException ex) {
            ex.printStackTrace();
            return null;
        }
    }

    public double getID() {
        return ID;
    }

    public void setID(double ID) {
        this.ID = ID;
    }

    public String getDESCRIPCION() {
        return DESCRIPCION;
    }

    public void setDESCRIPCION(String DESCRIPCION) {
        this.DESCRIPCION = DESCRIPCION;
    }

    public double getPORCENTAJE() {
        return PORCENTAJE;
    }

    public void setPORCENTAJE(double PORCENTAJE) {
        this.PORCENTAJE = PORCENTAJE;
    }

    public double getDEBE_HABER() {
        return DEBE_HABER;
    }

    public void setDEBE_HABER(double DEBE_HABER) {
        this.DEBE_HABER = DEBE_HABER;
    }

    public double getID_CUENTA() {
        return ID_CUENTA;
    }

    public void setID_CUENTA(double ID_CUENTA) {
        this.ID_CUENTA = ID_CUENTA;
    }

    public Conexion getCon() {
        return this.con;
    }

    public Double getDEDUCIBLE_FISCAL() {
        return DEDUCIBLE_FISCAL;
    }

    public void setDEDUCIBLE_FISCAL(Double DEDUCIBLE_FISCAL) {
        this.DEDUCIBLE_FISCAL = DEDUCIBLE_FISCAL;
    }
    
    public void setCon(Conexion con) {
        this.con = con;
    }
}
